#ifndef GLUTILS_H
#define GLUTILS_H

#include <GL/glew.h>
#include <GL/gl.h>
#include <GL/glu.h>

// Error, Warning and Info Strings
static char* aGLSLStrings[] = {
        "[e00] GLSL is not available!",
        "[e01] Not a valid program object!",
        "[e02] Not a valid object!",
        "[e03] Out of memory!",
        "[e04] Unknown compiler error!",
        "[e05] Linker log is not available!",
        "[e06] Compiler log is not available!",
        "[Empty]"
        };

static bool useGLSL = true;
static bool bGeometryShader = true;
static bool bGPUShader4 = true;

class GLUtils
{
public:
    GLUtils();

    static int checkForOpenGLError(const char *, int);
    static void dumpGLInfo(bool dumpExtensions = false);
    static int CheckGLError(char *file, int line);
};

#define CHECK_GL_ERROR()    GLUtils::CheckGLError(__FILE__, __LINE__)

#endif // GLUTILS_H
